﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.IO;
using System.Web.UI.WebControls;

public partial class Admin_QuangCao : System.Web.UI.Page
{
    private string file_save_name = "";
    private string path_save = "";
    BieumauDataContext db = new BieumauDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["login_admin"] == null)
        {
            Response.Redirect("Index.aspx");
        }
        if (!IsPostBack)
        {
            // 
            drop_vitri.Items.Clear(); 
            drop_vitri.Items.Add("Xin chọn vị trí");
            drop_vitri.Items.Add("Trang chủ");
            drop_vitri.Items.Add("Trang doanh nghiệp");
            drop_vitri.Items.Add("Trang nhà nước");
            drop_vitri.SelectedIndex = 0;
          
        }
       
    }
          


    /// <summary>
    /// Hàm sau đây sẽ tạo mã ngẫu nhiên chỉ gồm các chữ số
    /// </summary>
    /// <param name="codeCount">độ dài chuỗi random</param>
    /// <returns>chuỗi random</returns>
    public string MaNgauNhien_So(int codeCount)
    {
        string allChar = "0,1,2,3,4,5,6,7,8,9";
        string[] allCharArray = allChar.Split(',');
        string randomCode = "";
        int temp = -1;
        Random rand = new Random();
        for (int i = 0; i < codeCount; i++)
        {
            if (temp != -1)
            {
                rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
            }
            int t = rand.Next(10);
            if (temp != -1 && temp == t)
            {
                return MaNgauNhien_So(codeCount);
            }
            temp = t;
            randomCode += allCharArray[t];
        }
        return randomCode;
    }

    /// <summary>
    /// hàm upload file
    /// </summary>
    /// <param name="domain_name"></param>
    /// <param name="save_path"></param>
    /// <param name="file_upload"></param>
    public void hamupload_file(string domain_name, string save_path, FileUpload file_upload)
    {

        //khai báo lấy tên tập tin
        if (file_upload.HasFile)
        {

            string[] validFileTypes = {"PNG","png","jpg","JPG","GIF","gif","SWF","swf"};
            string ext = System.IO.Path.GetExtension(file_upload.PostedFile.FileName);
            bool isValidFile = false;
            for (int i = 0; i < validFileTypes.Length; i++)
            {
                if (ext == "." + validFileTypes[i])
                {
                    isValidFile = true;
                    break;
                }
            }
            if (!isValidFile)
            {
                Label1.ForeColor = System.Drawing.Color.Red;
                Label1.Text = "Sai định dạng ảnh,hãy chọn file có phần mở rộng như sau:" +
                string.Join(",", validFileTypes);
            }
            else
            {
                string new_random = MaNgauNhien_So(10);
                string file_name = file_upload.FileName;
                file_name = new_random +"_"+ext;
                file_save_name = file_name;
                save_path += file_name;
                path_save = save_path;
                HttpPostedFile file = file_upload.PostedFile;
                file_upload.SaveAs(save_path);
                ////thay thế phương thức:HttpPostedFile file = file_upload.PostedFile;= Stream filenguon = file_upload.PostedFile.InputStream;
                //Stream filenguon = file_upload.PostedFile.InputStream;
                ////nén ảnh tỉ lệ 1/2 ảnh gốc
                ////Resize_image.Set_Image(0.5, filenguon, save_path);
                ////nén ảnh theo kích thước tùy ý
                //Resize_image.Set_Image(110,80, filenguon, save_path);
            }


        }
    
    }
    
    /// <summary>
    /// hàm thêm file banner
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    ///      
    protected void Button2_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (drop_vitri.SelectedIndex == 0)
            {
                Response.Write("<script language='JavaScript'> alert('Vui lòng chọn đầy đủ thông tin trước khi tìm'); </script>");
                return;
            }
            tblBanner bn = new tblBanner();
            //kiểm tra xem logo đã lưu thành công chưa?
            if (FileUpload1.HasFile)
            {
                string save_path = Server.MapPath("~/userfiles/banner/");
                hamupload_file("", save_path, FileUpload1);
            }
            //neu file da ton tai
            if (File.Exists(path_save))
            {
                
                if (drop_vitri.SelectedIndex == 1)
                {
                   
                    if (count_exist(true, 1))
                    {
                        tblBanner tb = db.tblBanners.Single(p => p.Trangthai == true && p.Vitri == 1);
                        tb.URL = bn.URL = "userfiles/banner/" + file_save_name;
                        tb.Loaifile = file_save_name.Substring(file_save_name.Length - 3, 3);
                        db.SubmitChanges();
                    }
                    else
                    {
                        bn.IDBanner=1;
                        bn.Vitri = 1;
                        bn.URL = "userfiles/banner/" + file_save_name;
                        bn.Trangthai =true;
                        bn.Loaifile = file_save_name.Substring(file_save_name.Length - 3, 3);
                        db.tblBanners.InsertOnSubmit(bn);
                        db.SubmitChanges();
                    }
                }
                if (drop_vitri.SelectedIndex == 2)
                {
                    if (count_exist(true, 2))
                    {
                        tblBanner tb = db.tblBanners.Single(p => p.Trangthai == true && p.Vitri == 2);
                        tb.URL = bn.URL = "userfiles/banner/" + file_save_name;
                        tb.Loaifile = file_save_name.Substring(file_save_name.Length - 3, 3);
                        db.SubmitChanges();
                    }
                    else
                    {
                        bn.IDBanner = 2;
                        bn.Vitri = 2;
                        bn.URL = "userfiles/banner/" + file_save_name;
                        bn.Trangthai = true;
                        bn.Loaifile = file_save_name.Substring(file_save_name.Length - 3, 3);
                        db.tblBanners.InsertOnSubmit(bn);
                        db.SubmitChanges();
                    }
                }
                if (drop_vitri.SelectedIndex == 3)
                {
                    if (count_exist(true, 3))
                    {
                        tblBanner tb = db.tblBanners.Single(p => p.Trangthai == true && p.Vitri == 3);
                        tb.URL = bn.URL = "userfiles/banner/" + file_save_name;
                        tb.Loaifile = file_save_name.Substring(file_save_name.Length - 3, 3);
                        db.SubmitChanges();
                    }
                    else
                    {
                        bn.IDBanner = 3;
                        bn.Vitri =3;
                        bn.URL = "userfiles/banner/" + file_save_name;
                        bn.Trangthai = true;
                        bn.Loaifile = file_save_name.Substring(file_save_name.Length - 3, 3);
                        db.tblBanners.InsertOnSubmit(bn);
                        db.SubmitChanges();
                    }
                }
               

            }
            else
            {
                lbllabel.ForeColor = System.Drawing.Color.Red;
                lbllabel.Text = "Không thể đăng tải hình ảnh,xin thử lại";
            }

        }
    }
   
    public bool count_exist(bool trangthai,int vitri)
        {
            int i= db.tblBanners.Where(p => p.Trangthai==trangthai && p.Vitri == vitri).Count();
            if (i != 0)
                return true;
            return false;
        }
}